package ar.edu.phm.tp.cuatro.planificacionDsl.parser.antlr.internal; 

import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.common.util.Enumerator;
import org.eclipse.xtext.parser.antlr.AbstractInternalAntlrParser;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.parser.antlr.AntlrDatatypeRuleToken;
import ar.edu.phm.tp.cuatro.planificacionDsl.services.PlanificacionGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalPlanificacionParser extends AbstractInternalAntlrParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_ID", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'Plan'", "'cuatrimestre'", "'{'", "'se dicta'", "'('", "','", "')'", "'}'", "'Aula'", "'tiene'", "'Materia'", "'carga horaria'", "'dias a la semana'", "'requiere'", "'Profesor'", "'dedicacion'", "'dicta'", "'Dia'", "'Asignar'", "'a'", "'de'", "'Exclusiva'", "'Semi'", "'Simple'", "'Proyector'", "'PcDocente'", "'PcAlumnos'", "'Internet'", "'Domingo'", "'Lunes'", "'Martes'", "'Miercoles'", "'Jueves'", "'Viernes'", "'Sabado'", "'Uno'", "'Dos'"
    };
    public static final int RULE_ID=5;
    public static final int T__29=29;
    public static final int T__28=28;
    public static final int T__27=27;
    public static final int T__26=26;
    public static final int T__25=25;
    public static final int T__24=24;
    public static final int T__23=23;
    public static final int T__22=22;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__21=21;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int T__19=19;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=4;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int RULE_STRING=6;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalPlanificacionParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalPlanificacionParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalPlanificacionParser.tokenNames; }
    public String getGrammarFileName() { return "../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g"; }



     	private PlanificacionGrammarAccess grammarAccess;
     	
        public InternalPlanificacionParser(TokenStream input, PlanificacionGrammarAccess grammarAccess) {
            this(input);
            this.grammarAccess = grammarAccess;
            registerRules(grammarAccess.getGrammar());
        }
        
        @Override
        protected String getFirstRuleName() {
        	return "Model";	
       	}
       	
       	@Override
       	protected PlanificacionGrammarAccess getGrammarAccess() {
       		return grammarAccess;
       	}



    // $ANTLR start "entryRuleModel"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:68:1: entryRuleModel returns [EObject current=null] : iv_ruleModel= ruleModel EOF ;
    public final EObject entryRuleModel() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleModel = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:69:2: (iv_ruleModel= ruleModel EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:70:2: iv_ruleModel= ruleModel EOF
            {
             newCompositeNode(grammarAccess.getModelRule()); 
            pushFollow(FOLLOW_ruleModel_in_entryRuleModel75);
            iv_ruleModel=ruleModel();

            state._fsp--;

             current =iv_ruleModel; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleModel85); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleModel"


    // $ANTLR start "ruleModel"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:77:1: ruleModel returns [EObject current=null] : ( (lv_entidades_0_0= ruleEntidad ) )* ;
    public final EObject ruleModel() throws RecognitionException {
        EObject current = null;

        EObject lv_entidades_0_0 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:80:28: ( ( (lv_entidades_0_0= ruleEntidad ) )* )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:81:1: ( (lv_entidades_0_0= ruleEntidad ) )*
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:81:1: ( (lv_entidades_0_0= ruleEntidad ) )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==11||LA1_0==19||LA1_0==21||LA1_0==25) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:82:1: (lv_entidades_0_0= ruleEntidad )
            	    {
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:82:1: (lv_entidades_0_0= ruleEntidad )
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:83:3: lv_entidades_0_0= ruleEntidad
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getModelAccess().getEntidadesEntidadParserRuleCall_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleEntidad_in_ruleModel130);
            	    lv_entidades_0_0=ruleEntidad();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getModelRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"entidades",
            	            		lv_entidades_0_0, 
            	            		"Entidad");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleModel"


    // $ANTLR start "entryRuleEntidad"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:107:1: entryRuleEntidad returns [EObject current=null] : iv_ruleEntidad= ruleEntidad EOF ;
    public final EObject entryRuleEntidad() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleEntidad = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:108:2: (iv_ruleEntidad= ruleEntidad EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:109:2: iv_ruleEntidad= ruleEntidad EOF
            {
             newCompositeNode(grammarAccess.getEntidadRule()); 
            pushFollow(FOLLOW_ruleEntidad_in_entryRuleEntidad166);
            iv_ruleEntidad=ruleEntidad();

            state._fsp--;

             current =iv_ruleEntidad; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleEntidad176); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleEntidad"


    // $ANTLR start "ruleEntidad"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:116:1: ruleEntidad returns [EObject current=null] : (this_Docente_0= ruleDocente | this_Materia_1= ruleMateria | this_Aula_2= ruleAula | this_Plan_3= rulePlan ) ;
    public final EObject ruleEntidad() throws RecognitionException {
        EObject current = null;

        EObject this_Docente_0 = null;

        EObject this_Materia_1 = null;

        EObject this_Aula_2 = null;

        EObject this_Plan_3 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:119:28: ( (this_Docente_0= ruleDocente | this_Materia_1= ruleMateria | this_Aula_2= ruleAula | this_Plan_3= rulePlan ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:120:1: (this_Docente_0= ruleDocente | this_Materia_1= ruleMateria | this_Aula_2= ruleAula | this_Plan_3= rulePlan )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:120:1: (this_Docente_0= ruleDocente | this_Materia_1= ruleMateria | this_Aula_2= ruleAula | this_Plan_3= rulePlan )
            int alt2=4;
            switch ( input.LA(1) ) {
            case 25:
                {
                alt2=1;
                }
                break;
            case 21:
                {
                alt2=2;
                }
                break;
            case 19:
                {
                alt2=3;
                }
                break;
            case 11:
                {
                alt2=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }

            switch (alt2) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:121:5: this_Docente_0= ruleDocente
                    {
                     
                            newCompositeNode(grammarAccess.getEntidadAccess().getDocenteParserRuleCall_0()); 
                        
                    pushFollow(FOLLOW_ruleDocente_in_ruleEntidad223);
                    this_Docente_0=ruleDocente();

                    state._fsp--;

                     
                            current = this_Docente_0; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 2 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:131:5: this_Materia_1= ruleMateria
                    {
                     
                            newCompositeNode(grammarAccess.getEntidadAccess().getMateriaParserRuleCall_1()); 
                        
                    pushFollow(FOLLOW_ruleMateria_in_ruleEntidad250);
                    this_Materia_1=ruleMateria();

                    state._fsp--;

                     
                            current = this_Materia_1; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 3 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:141:5: this_Aula_2= ruleAula
                    {
                     
                            newCompositeNode(grammarAccess.getEntidadAccess().getAulaParserRuleCall_2()); 
                        
                    pushFollow(FOLLOW_ruleAula_in_ruleEntidad277);
                    this_Aula_2=ruleAula();

                    state._fsp--;

                     
                            current = this_Aula_2; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;
                case 4 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:151:5: this_Plan_3= rulePlan
                    {
                     
                            newCompositeNode(grammarAccess.getEntidadAccess().getPlanParserRuleCall_3()); 
                        
                    pushFollow(FOLLOW_rulePlan_in_ruleEntidad304);
                    this_Plan_3=rulePlan();

                    state._fsp--;

                     
                            current = this_Plan_3; 
                            afterParserOrEnumRuleCall();
                        

                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleEntidad"


    // $ANTLR start "entryRulePlan"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:167:1: entryRulePlan returns [EObject current=null] : iv_rulePlan= rulePlan EOF ;
    public final EObject entryRulePlan() throws RecognitionException {
        EObject current = null;

        EObject iv_rulePlan = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:168:2: (iv_rulePlan= rulePlan EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:169:2: iv_rulePlan= rulePlan EOF
            {
             newCompositeNode(grammarAccess.getPlanRule()); 
            pushFollow(FOLLOW_rulePlan_in_entryRulePlan339);
            iv_rulePlan=rulePlan();

            state._fsp--;

             current =iv_rulePlan; 
            match(input,EOF,FOLLOW_EOF_in_entryRulePlan349); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRulePlan"


    // $ANTLR start "rulePlan"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:176:1: rulePlan returns [EObject current=null] : (otherlv_0= 'Plan' ( (lv_anio_1_0= RULE_INT ) ) otherlv_2= 'cuatrimestre' ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) ) otherlv_4= '{' otherlv_5= 'se dicta' otherlv_6= '(' ( (otherlv_7= RULE_ID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )? otherlv_10= ')' ( (lv_dias_11_0= ruleDia ) )* otherlv_12= '}' ) ;
    public final EObject rulePlan() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_anio_1_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_8=null;
        Token otherlv_9=null;
        Token otherlv_10=null;
        Token otherlv_12=null;
        Enumerator lv_cuatrimestre_3_0 = null;

        EObject lv_dias_11_0 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:179:28: ( (otherlv_0= 'Plan' ( (lv_anio_1_0= RULE_INT ) ) otherlv_2= 'cuatrimestre' ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) ) otherlv_4= '{' otherlv_5= 'se dicta' otherlv_6= '(' ( (otherlv_7= RULE_ID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )? otherlv_10= ')' ( (lv_dias_11_0= ruleDia ) )* otherlv_12= '}' ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:180:1: (otherlv_0= 'Plan' ( (lv_anio_1_0= RULE_INT ) ) otherlv_2= 'cuatrimestre' ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) ) otherlv_4= '{' otherlv_5= 'se dicta' otherlv_6= '(' ( (otherlv_7= RULE_ID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )? otherlv_10= ')' ( (lv_dias_11_0= ruleDia ) )* otherlv_12= '}' )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:180:1: (otherlv_0= 'Plan' ( (lv_anio_1_0= RULE_INT ) ) otherlv_2= 'cuatrimestre' ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) ) otherlv_4= '{' otherlv_5= 'se dicta' otherlv_6= '(' ( (otherlv_7= RULE_ID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )? otherlv_10= ')' ( (lv_dias_11_0= ruleDia ) )* otherlv_12= '}' )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:180:3: otherlv_0= 'Plan' ( (lv_anio_1_0= RULE_INT ) ) otherlv_2= 'cuatrimestre' ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) ) otherlv_4= '{' otherlv_5= 'se dicta' otherlv_6= '(' ( (otherlv_7= RULE_ID ) ) (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )? otherlv_10= ')' ( (lv_dias_11_0= ruleDia ) )* otherlv_12= '}'
            {
            otherlv_0=(Token)match(input,11,FOLLOW_11_in_rulePlan386); 

                	newLeafNode(otherlv_0, grammarAccess.getPlanAccess().getPlanKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:184:1: ( (lv_anio_1_0= RULE_INT ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:185:1: (lv_anio_1_0= RULE_INT )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:185:1: (lv_anio_1_0= RULE_INT )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:186:3: lv_anio_1_0= RULE_INT
            {
            lv_anio_1_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_rulePlan403); 

            			newLeafNode(lv_anio_1_0, grammarAccess.getPlanAccess().getAnioINTTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getPlanRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"anio",
                    		lv_anio_1_0, 
                    		"INT");
            	    

            }


            }

            otherlv_2=(Token)match(input,12,FOLLOW_12_in_rulePlan420); 

                	newLeafNode(otherlv_2, grammarAccess.getPlanAccess().getCuatrimestreKeyword_2());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:206:1: ( (lv_cuatrimestre_3_0= ruleCuatrimestre ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:207:1: (lv_cuatrimestre_3_0= ruleCuatrimestre )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:207:1: (lv_cuatrimestre_3_0= ruleCuatrimestre )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:208:3: lv_cuatrimestre_3_0= ruleCuatrimestre
            {
             
            	        newCompositeNode(grammarAccess.getPlanAccess().getCuatrimestreCuatrimestreEnumRuleCall_3_0()); 
            	    
            pushFollow(FOLLOW_ruleCuatrimestre_in_rulePlan441);
            lv_cuatrimestre_3_0=ruleCuatrimestre();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getPlanRule());
            	        }
                   		set(
                   			current, 
                   			"cuatrimestre",
                    		lv_cuatrimestre_3_0, 
                    		"Cuatrimestre");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_4=(Token)match(input,13,FOLLOW_13_in_rulePlan453); 

                	newLeafNode(otherlv_4, grammarAccess.getPlanAccess().getLeftCurlyBracketKeyword_4());
                
            otherlv_5=(Token)match(input,14,FOLLOW_14_in_rulePlan465); 

                	newLeafNode(otherlv_5, grammarAccess.getPlanAccess().getSeDictaKeyword_5());
                
            otherlv_6=(Token)match(input,15,FOLLOW_15_in_rulePlan477); 

                	newLeafNode(otherlv_6, grammarAccess.getPlanAccess().getLeftParenthesisKeyword_6());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:236:1: ( (otherlv_7= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:237:1: (otherlv_7= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:237:1: (otherlv_7= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:238:3: otherlv_7= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getPlanRule());
            	        }
                    
            otherlv_7=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePlan497); 

            		newLeafNode(otherlv_7, grammarAccess.getPlanAccess().getMateriasADictarMateriaCrossReference_7_0()); 
            	

            }


            }

            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:249:2: (otherlv_8= ',' ( (otherlv_9= RULE_ID ) )* )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==16) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:249:4: otherlv_8= ',' ( (otherlv_9= RULE_ID ) )*
                    {
                    otherlv_8=(Token)match(input,16,FOLLOW_16_in_rulePlan510); 

                        	newLeafNode(otherlv_8, grammarAccess.getPlanAccess().getCommaKeyword_8_0());
                        
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:253:1: ( (otherlv_9= RULE_ID ) )*
                    loop3:
                    do {
                        int alt3=2;
                        int LA3_0 = input.LA(1);

                        if ( (LA3_0==RULE_ID) ) {
                            alt3=1;
                        }


                        switch (alt3) {
                    	case 1 :
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:254:1: (otherlv_9= RULE_ID )
                    	    {
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:254:1: (otherlv_9= RULE_ID )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:255:3: otherlv_9= RULE_ID
                    	    {

                    	    			if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getPlanRule());
                    	    	        }
                    	            
                    	    otherlv_9=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_rulePlan530); 

                    	    		newLeafNode(otherlv_9, grammarAccess.getPlanAccess().getMateriasADictarMateriaCrossReference_8_1_0()); 
                    	    	

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop3;
                        }
                    } while (true);


                    }
                    break;

            }

            otherlv_10=(Token)match(input,17,FOLLOW_17_in_rulePlan545); 

                	newLeafNode(otherlv_10, grammarAccess.getPlanAccess().getRightParenthesisKeyword_9());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:270:1: ( (lv_dias_11_0= ruleDia ) )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==28) ) {
                    alt5=1;
                }


                switch (alt5) {
            	case 1 :
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:271:1: (lv_dias_11_0= ruleDia )
            	    {
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:271:1: (lv_dias_11_0= ruleDia )
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:272:3: lv_dias_11_0= ruleDia
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getPlanAccess().getDiasDiaParserRuleCall_10_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleDia_in_rulePlan566);
            	    lv_dias_11_0=ruleDia();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getPlanRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"dias",
            	            		lv_dias_11_0, 
            	            		"Dia");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop5;
                }
            } while (true);

            otherlv_12=(Token)match(input,18,FOLLOW_18_in_rulePlan579); 

                	newLeafNode(otherlv_12, grammarAccess.getPlanAccess().getRightCurlyBracketKeyword_11());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "rulePlan"


    // $ANTLR start "entryRuleAula"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:300:1: entryRuleAula returns [EObject current=null] : iv_ruleAula= ruleAula EOF ;
    public final EObject entryRuleAula() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAula = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:301:2: (iv_ruleAula= ruleAula EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:302:2: iv_ruleAula= ruleAula EOF
            {
             newCompositeNode(grammarAccess.getAulaRule()); 
            pushFollow(FOLLOW_ruleAula_in_entryRuleAula615);
            iv_ruleAula=ruleAula();

            state._fsp--;

             current =iv_ruleAula; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAula625); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAula"


    // $ANTLR start "ruleAula"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:309:1: ruleAula returns [EObject current=null] : (otherlv_0= 'Aula' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )? ) ;
    public final EObject ruleAula() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_5=null;
        Token otherlv_7=null;
        Enumerator lv_recursos_4_0 = null;

        Enumerator lv_recursos_6_0 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:312:28: ( (otherlv_0= 'Aula' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )? ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:313:1: (otherlv_0= 'Aula' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )? )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:313:1: (otherlv_0= 'Aula' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )? )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:313:3: otherlv_0= 'Aula' ( (lv_name_1_0= RULE_ID ) ) (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )?
            {
            otherlv_0=(Token)match(input,19,FOLLOW_19_in_ruleAula662); 

                	newLeafNode(otherlv_0, grammarAccess.getAulaAccess().getAulaKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:317:1: ( (lv_name_1_0= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:318:1: (lv_name_1_0= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:318:1: (lv_name_1_0= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:319:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAula679); 

            			newLeafNode(lv_name_1_0, grammarAccess.getAulaAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAulaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:335:2: (otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')' )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==20) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:335:4: otherlv_2= 'tiene' otherlv_3= '(' ( (lv_recursos_4_0= ruleTipoRecurso ) ) (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )* otherlv_7= ')'
                    {
                    otherlv_2=(Token)match(input,20,FOLLOW_20_in_ruleAula697); 

                        	newLeafNode(otherlv_2, grammarAccess.getAulaAccess().getTieneKeyword_2_0());
                        
                    otherlv_3=(Token)match(input,15,FOLLOW_15_in_ruleAula709); 

                        	newLeafNode(otherlv_3, grammarAccess.getAulaAccess().getLeftParenthesisKeyword_2_1());
                        
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:343:1: ( (lv_recursos_4_0= ruleTipoRecurso ) )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:344:1: (lv_recursos_4_0= ruleTipoRecurso )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:344:1: (lv_recursos_4_0= ruleTipoRecurso )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:345:3: lv_recursos_4_0= ruleTipoRecurso
                    {
                     
                    	        newCompositeNode(grammarAccess.getAulaAccess().getRecursosTipoRecursoEnumRuleCall_2_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTipoRecurso_in_ruleAula730);
                    lv_recursos_4_0=ruleTipoRecurso();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getAulaRule());
                    	        }
                           		add(
                           			current, 
                           			"recursos",
                            		lv_recursos_4_0, 
                            		"TipoRecurso");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:361:2: (otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) ) )*
                    loop6:
                    do {
                        int alt6=2;
                        int LA6_0 = input.LA(1);

                        if ( (LA6_0==16) ) {
                            alt6=1;
                        }


                        switch (alt6) {
                    	case 1 :
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:361:4: otherlv_5= ',' ( (lv_recursos_6_0= ruleTipoRecurso ) )
                    	    {
                    	    otherlv_5=(Token)match(input,16,FOLLOW_16_in_ruleAula743); 

                    	        	newLeafNode(otherlv_5, grammarAccess.getAulaAccess().getCommaKeyword_2_3_0());
                    	        
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:365:1: ( (lv_recursos_6_0= ruleTipoRecurso ) )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:366:1: (lv_recursos_6_0= ruleTipoRecurso )
                    	    {
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:366:1: (lv_recursos_6_0= ruleTipoRecurso )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:367:3: lv_recursos_6_0= ruleTipoRecurso
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getAulaAccess().getRecursosTipoRecursoEnumRuleCall_2_3_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleTipoRecurso_in_ruleAula764);
                    	    lv_recursos_6_0=ruleTipoRecurso();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getAulaRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"recursos",
                    	            		lv_recursos_6_0, 
                    	            		"TipoRecurso");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop6;
                        }
                    } while (true);

                    otherlv_7=(Token)match(input,17,FOLLOW_17_in_ruleAula778); 

                        	newLeafNode(otherlv_7, grammarAccess.getAulaAccess().getRightParenthesisKeyword_2_4());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAula"


    // $ANTLR start "entryRuleMateria"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:395:1: entryRuleMateria returns [EObject current=null] : iv_ruleMateria= ruleMateria EOF ;
    public final EObject entryRuleMateria() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleMateria = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:396:2: (iv_ruleMateria= ruleMateria EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:397:2: iv_ruleMateria= ruleMateria EOF
            {
             newCompositeNode(grammarAccess.getMateriaRule()); 
            pushFollow(FOLLOW_ruleMateria_in_entryRuleMateria816);
            iv_ruleMateria=ruleMateria();

            state._fsp--;

             current =iv_ruleMateria; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleMateria826); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleMateria"


    // $ANTLR start "ruleMateria"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:404:1: ruleMateria returns [EObject current=null] : (otherlv_0= 'Materia' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'carga horaria' ( (lv_horas_3_0= RULE_INT ) ) otherlv_4= 'dias a la semana' ( (lv_dias_5_0= RULE_INT ) ) (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )? ) ;
    public final EObject ruleMateria() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token lv_horas_3_0=null;
        Token otherlv_4=null;
        Token lv_dias_5_0=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        Token otherlv_9=null;
        Token otherlv_11=null;
        Enumerator lv_requisitos_8_0 = null;

        Enumerator lv_requisitos_10_0 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:407:28: ( (otherlv_0= 'Materia' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'carga horaria' ( (lv_horas_3_0= RULE_INT ) ) otherlv_4= 'dias a la semana' ( (lv_dias_5_0= RULE_INT ) ) (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )? ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:408:1: (otherlv_0= 'Materia' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'carga horaria' ( (lv_horas_3_0= RULE_INT ) ) otherlv_4= 'dias a la semana' ( (lv_dias_5_0= RULE_INT ) ) (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )? )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:408:1: (otherlv_0= 'Materia' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'carga horaria' ( (lv_horas_3_0= RULE_INT ) ) otherlv_4= 'dias a la semana' ( (lv_dias_5_0= RULE_INT ) ) (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )? )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:408:3: otherlv_0= 'Materia' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'carga horaria' ( (lv_horas_3_0= RULE_INT ) ) otherlv_4= 'dias a la semana' ( (lv_dias_5_0= RULE_INT ) ) (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )?
            {
            otherlv_0=(Token)match(input,21,FOLLOW_21_in_ruleMateria863); 

                	newLeafNode(otherlv_0, grammarAccess.getMateriaAccess().getMateriaKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:412:1: ( (lv_name_1_0= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:413:1: (lv_name_1_0= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:413:1: (lv_name_1_0= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:414:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleMateria880); 

            			newLeafNode(lv_name_1_0, grammarAccess.getMateriaAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,22,FOLLOW_22_in_ruleMateria897); 

                	newLeafNode(otherlv_2, grammarAccess.getMateriaAccess().getCargaHorariaKeyword_2());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:434:1: ( (lv_horas_3_0= RULE_INT ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:435:1: (lv_horas_3_0= RULE_INT )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:435:1: (lv_horas_3_0= RULE_INT )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:436:3: lv_horas_3_0= RULE_INT
            {
            lv_horas_3_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMateria914); 

            			newLeafNode(lv_horas_3_0, grammarAccess.getMateriaAccess().getHorasINTTerminalRuleCall_3_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horas",
                    		lv_horas_3_0, 
                    		"INT");
            	    

            }


            }

            otherlv_4=(Token)match(input,23,FOLLOW_23_in_ruleMateria931); 

                	newLeafNode(otherlv_4, grammarAccess.getMateriaAccess().getDiasALaSemanaKeyword_4());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:456:1: ( (lv_dias_5_0= RULE_INT ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:457:1: (lv_dias_5_0= RULE_INT )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:457:1: (lv_dias_5_0= RULE_INT )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:458:3: lv_dias_5_0= RULE_INT
            {
            lv_dias_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleMateria948); 

            			newLeafNode(lv_dias_5_0, grammarAccess.getMateriaAccess().getDiasINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getMateriaRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"dias",
                    		lv_dias_5_0, 
                    		"INT");
            	    

            }


            }

            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:474:2: (otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}' )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==24) ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:474:4: otherlv_6= 'requiere' otherlv_7= '{' ( (lv_requisitos_8_0= ruleTipoRecurso ) ) (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )* otherlv_11= '}'
                    {
                    otherlv_6=(Token)match(input,24,FOLLOW_24_in_ruleMateria966); 

                        	newLeafNode(otherlv_6, grammarAccess.getMateriaAccess().getRequiereKeyword_6_0());
                        
                    otherlv_7=(Token)match(input,13,FOLLOW_13_in_ruleMateria978); 

                        	newLeafNode(otherlv_7, grammarAccess.getMateriaAccess().getLeftCurlyBracketKeyword_6_1());
                        
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:482:1: ( (lv_requisitos_8_0= ruleTipoRecurso ) )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:483:1: (lv_requisitos_8_0= ruleTipoRecurso )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:483:1: (lv_requisitos_8_0= ruleTipoRecurso )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:484:3: lv_requisitos_8_0= ruleTipoRecurso
                    {
                     
                    	        newCompositeNode(grammarAccess.getMateriaAccess().getRequisitosTipoRecursoEnumRuleCall_6_2_0()); 
                    	    
                    pushFollow(FOLLOW_ruleTipoRecurso_in_ruleMateria999);
                    lv_requisitos_8_0=ruleTipoRecurso();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getMateriaRule());
                    	        }
                           		add(
                           			current, 
                           			"requisitos",
                            		lv_requisitos_8_0, 
                            		"TipoRecurso");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }


                    }

                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:500:2: (otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) ) )*
                    loop8:
                    do {
                        int alt8=2;
                        int LA8_0 = input.LA(1);

                        if ( (LA8_0==16) ) {
                            alt8=1;
                        }


                        switch (alt8) {
                    	case 1 :
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:500:4: otherlv_9= ',' ( (lv_requisitos_10_0= ruleTipoRecurso ) )
                    	    {
                    	    otherlv_9=(Token)match(input,16,FOLLOW_16_in_ruleMateria1012); 

                    	        	newLeafNode(otherlv_9, grammarAccess.getMateriaAccess().getCommaKeyword_6_3_0());
                    	        
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:504:1: ( (lv_requisitos_10_0= ruleTipoRecurso ) )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:505:1: (lv_requisitos_10_0= ruleTipoRecurso )
                    	    {
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:505:1: (lv_requisitos_10_0= ruleTipoRecurso )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:506:3: lv_requisitos_10_0= ruleTipoRecurso
                    	    {
                    	     
                    	    	        newCompositeNode(grammarAccess.getMateriaAccess().getRequisitosTipoRecursoEnumRuleCall_6_3_1_0()); 
                    	    	    
                    	    pushFollow(FOLLOW_ruleTipoRecurso_in_ruleMateria1033);
                    	    lv_requisitos_10_0=ruleTipoRecurso();

                    	    state._fsp--;


                    	    	        if (current==null) {
                    	    	            current = createModelElementForParent(grammarAccess.getMateriaRule());
                    	    	        }
                    	           		add(
                    	           			current, 
                    	           			"requisitos",
                    	            		lv_requisitos_10_0, 
                    	            		"TipoRecurso");
                    	    	        afterParserOrEnumRuleCall();
                    	    	    

                    	    }


                    	    }


                    	    }
                    	    break;

                    	default :
                    	    break loop8;
                        }
                    } while (true);

                    otherlv_11=(Token)match(input,18,FOLLOW_18_in_ruleMateria1047); 

                        	newLeafNode(otherlv_11, grammarAccess.getMateriaAccess().getRightCurlyBracketKeyword_6_4());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleMateria"


    // $ANTLR start "entryRuleDocente"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:534:1: entryRuleDocente returns [EObject current=null] : iv_ruleDocente= ruleDocente EOF ;
    public final EObject entryRuleDocente() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDocente = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:535:2: (iv_ruleDocente= ruleDocente EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:536:2: iv_ruleDocente= ruleDocente EOF
            {
             newCompositeNode(grammarAccess.getDocenteRule()); 
            pushFollow(FOLLOW_ruleDocente_in_entryRuleDocente1085);
            iv_ruleDocente=ruleDocente();

            state._fsp--;

             current =iv_ruleDocente; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDocente1095); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDocente"


    // $ANTLR start "ruleDocente"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:543:1: ruleDocente returns [EObject current=null] : (otherlv_0= 'Profesor' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dedicacion' ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) ) (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )? ) ;
    public final EObject ruleDocente() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token lv_name_1_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Token otherlv_5=null;
        Token otherlv_6=null;
        Token otherlv_7=null;
        EObject lv_tipo_3_1 = null;

        EObject lv_tipo_3_2 = null;

        EObject lv_tipo_3_3 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:546:28: ( (otherlv_0= 'Profesor' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dedicacion' ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) ) (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )? ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:547:1: (otherlv_0= 'Profesor' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dedicacion' ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) ) (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )? )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:547:1: (otherlv_0= 'Profesor' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dedicacion' ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) ) (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )? )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:547:3: otherlv_0= 'Profesor' ( (lv_name_1_0= RULE_ID ) ) otherlv_2= 'dedicacion' ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) ) (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )?
            {
            otherlv_0=(Token)match(input,25,FOLLOW_25_in_ruleDocente1132); 

                	newLeafNode(otherlv_0, grammarAccess.getDocenteAccess().getProfesorKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:551:1: ( (lv_name_1_0= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:552:1: (lv_name_1_0= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:552:1: (lv_name_1_0= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:553:3: lv_name_1_0= RULE_ID
            {
            lv_name_1_0=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDocente1149); 

            			newLeafNode(lv_name_1_0, grammarAccess.getDocenteAccess().getNameIDTerminalRuleCall_1_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getDocenteRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"name",
                    		lv_name_1_0, 
                    		"ID");
            	    

            }


            }

            otherlv_2=(Token)match(input,26,FOLLOW_26_in_ruleDocente1166); 

                	newLeafNode(otherlv_2, grammarAccess.getDocenteAccess().getDedicacionKeyword_2());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:573:1: ( ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:574:1: ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:574:1: ( (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:575:1: (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:575:1: (lv_tipo_3_1= ruleSimple | lv_tipo_3_2= ruleSemi | lv_tipo_3_3= ruleExclusiva )
            int alt10=3;
            switch ( input.LA(1) ) {
            case 34:
                {
                alt10=1;
                }
                break;
            case 33:
                {
                alt10=2;
                }
                break;
            case 32:
                {
                alt10=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }

            switch (alt10) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:576:3: lv_tipo_3_1= ruleSimple
                    {
                     
                    	        newCompositeNode(grammarAccess.getDocenteAccess().getTipoSimpleParserRuleCall_3_0_0()); 
                    	    
                    pushFollow(FOLLOW_ruleSimple_in_ruleDocente1189);
                    lv_tipo_3_1=ruleSimple();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getDocenteRule());
                    	        }
                           		set(
                           			current, 
                           			"tipo",
                            		lv_tipo_3_1, 
                            		"Simple");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }
                    break;
                case 2 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:591:8: lv_tipo_3_2= ruleSemi
                    {
                     
                    	        newCompositeNode(grammarAccess.getDocenteAccess().getTipoSemiParserRuleCall_3_0_1()); 
                    	    
                    pushFollow(FOLLOW_ruleSemi_in_ruleDocente1208);
                    lv_tipo_3_2=ruleSemi();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getDocenteRule());
                    	        }
                           		set(
                           			current, 
                           			"tipo",
                            		lv_tipo_3_2, 
                            		"Semi");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }
                    break;
                case 3 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:606:8: lv_tipo_3_3= ruleExclusiva
                    {
                     
                    	        newCompositeNode(grammarAccess.getDocenteAccess().getTipoExclusivaParserRuleCall_3_0_2()); 
                    	    
                    pushFollow(FOLLOW_ruleExclusiva_in_ruleDocente1227);
                    lv_tipo_3_3=ruleExclusiva();

                    state._fsp--;


                    	        if (current==null) {
                    	            current = createModelElementForParent(grammarAccess.getDocenteRule());
                    	        }
                           		set(
                           			current, 
                           			"tipo",
                            		lv_tipo_3_3, 
                            		"Exclusiva");
                    	        afterParserOrEnumRuleCall();
                    	    

                    }
                    break;

            }


            }


            }

            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:624:2: (otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}' )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==27) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:624:4: otherlv_4= 'dicta' otherlv_5= '{' ( (otherlv_6= RULE_ID ) )+ otherlv_7= '}'
                    {
                    otherlv_4=(Token)match(input,27,FOLLOW_27_in_ruleDocente1243); 

                        	newLeafNode(otherlv_4, grammarAccess.getDocenteAccess().getDictaKeyword_4_0());
                        
                    otherlv_5=(Token)match(input,13,FOLLOW_13_in_ruleDocente1255); 

                        	newLeafNode(otherlv_5, grammarAccess.getDocenteAccess().getLeftCurlyBracketKeyword_4_1());
                        
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:632:1: ( (otherlv_6= RULE_ID ) )+
                    int cnt11=0;
                    loop11:
                    do {
                        int alt11=2;
                        int LA11_0 = input.LA(1);

                        if ( (LA11_0==RULE_ID) ) {
                            alt11=1;
                        }


                        switch (alt11) {
                    	case 1 :
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:633:1: (otherlv_6= RULE_ID )
                    	    {
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:633:1: (otherlv_6= RULE_ID )
                    	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:634:3: otherlv_6= RULE_ID
                    	    {

                    	    			if (current==null) {
                    	    	            current = createModelElement(grammarAccess.getDocenteRule());
                    	    	        }
                    	            
                    	    otherlv_6=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleDocente1275); 

                    	    		newLeafNode(otherlv_6, grammarAccess.getDocenteAccess().getMateriasMateriaCrossReference_4_2_0()); 
                    	    	

                    	    }


                    	    }
                    	    break;

                    	default :
                    	    if ( cnt11 >= 1 ) break loop11;
                                EarlyExitException eee =
                                    new EarlyExitException(11, input);
                                throw eee;
                        }
                        cnt11++;
                    } while (true);

                    otherlv_7=(Token)match(input,18,FOLLOW_18_in_ruleDocente1288); 

                        	newLeafNode(otherlv_7, grammarAccess.getDocenteAccess().getRightCurlyBracketKeyword_4_3());
                        

                    }
                    break;

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDocente"


    // $ANTLR start "entryRuleDia"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:657:1: entryRuleDia returns [EObject current=null] : iv_ruleDia= ruleDia EOF ;
    public final EObject entryRuleDia() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleDia = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:658:2: (iv_ruleDia= ruleDia EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:659:2: iv_ruleDia= ruleDia EOF
            {
             newCompositeNode(grammarAccess.getDiaRule()); 
            pushFollow(FOLLOW_ruleDia_in_entryRuleDia1326);
            iv_ruleDia=ruleDia();

            state._fsp--;

             current =iv_ruleDia; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleDia1336); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleDia"


    // $ANTLR start "ruleDia"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:666:1: ruleDia returns [EObject current=null] : (otherlv_0= 'Dia' ( (lv_dia_1_0= ruleNombreDia ) ) otherlv_2= '{' ( (lv_asignaciones_3_0= ruleAsignacion ) )* otherlv_4= '}' ) ;
    public final EObject ruleDia() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_2=null;
        Token otherlv_4=null;
        Enumerator lv_dia_1_0 = null;

        EObject lv_asignaciones_3_0 = null;


         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:669:28: ( (otherlv_0= 'Dia' ( (lv_dia_1_0= ruleNombreDia ) ) otherlv_2= '{' ( (lv_asignaciones_3_0= ruleAsignacion ) )* otherlv_4= '}' ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:670:1: (otherlv_0= 'Dia' ( (lv_dia_1_0= ruleNombreDia ) ) otherlv_2= '{' ( (lv_asignaciones_3_0= ruleAsignacion ) )* otherlv_4= '}' )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:670:1: (otherlv_0= 'Dia' ( (lv_dia_1_0= ruleNombreDia ) ) otherlv_2= '{' ( (lv_asignaciones_3_0= ruleAsignacion ) )* otherlv_4= '}' )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:670:3: otherlv_0= 'Dia' ( (lv_dia_1_0= ruleNombreDia ) ) otherlv_2= '{' ( (lv_asignaciones_3_0= ruleAsignacion ) )* otherlv_4= '}'
            {
            otherlv_0=(Token)match(input,28,FOLLOW_28_in_ruleDia1373); 

                	newLeafNode(otherlv_0, grammarAccess.getDiaAccess().getDiaKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:674:1: ( (lv_dia_1_0= ruleNombreDia ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:675:1: (lv_dia_1_0= ruleNombreDia )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:675:1: (lv_dia_1_0= ruleNombreDia )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:676:3: lv_dia_1_0= ruleNombreDia
            {
             
            	        newCompositeNode(grammarAccess.getDiaAccess().getDiaNombreDiaEnumRuleCall_1_0()); 
            	    
            pushFollow(FOLLOW_ruleNombreDia_in_ruleDia1394);
            lv_dia_1_0=ruleNombreDia();

            state._fsp--;


            	        if (current==null) {
            	            current = createModelElementForParent(grammarAccess.getDiaRule());
            	        }
                   		set(
                   			current, 
                   			"dia",
                    		lv_dia_1_0, 
                    		"NombreDia");
            	        afterParserOrEnumRuleCall();
            	    

            }


            }

            otherlv_2=(Token)match(input,13,FOLLOW_13_in_ruleDia1406); 

                	newLeafNode(otherlv_2, grammarAccess.getDiaAccess().getLeftCurlyBracketKeyword_2());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:696:1: ( (lv_asignaciones_3_0= ruleAsignacion ) )*
            loop13:
            do {
                int alt13=2;
                int LA13_0 = input.LA(1);

                if ( (LA13_0==29) ) {
                    alt13=1;
                }


                switch (alt13) {
            	case 1 :
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:697:1: (lv_asignaciones_3_0= ruleAsignacion )
            	    {
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:697:1: (lv_asignaciones_3_0= ruleAsignacion )
            	    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:698:3: lv_asignaciones_3_0= ruleAsignacion
            	    {
            	     
            	    	        newCompositeNode(grammarAccess.getDiaAccess().getAsignacionesAsignacionParserRuleCall_3_0()); 
            	    	    
            	    pushFollow(FOLLOW_ruleAsignacion_in_ruleDia1427);
            	    lv_asignaciones_3_0=ruleAsignacion();

            	    state._fsp--;


            	    	        if (current==null) {
            	    	            current = createModelElementForParent(grammarAccess.getDiaRule());
            	    	        }
            	           		add(
            	           			current, 
            	           			"asignaciones",
            	            		lv_asignaciones_3_0, 
            	            		"Asignacion");
            	    	        afterParserOrEnumRuleCall();
            	    	    

            	    }


            	    }
            	    break;

            	default :
            	    break loop13;
                }
            } while (true);

            otherlv_4=(Token)match(input,18,FOLLOW_18_in_ruleDia1440); 

                	newLeafNode(otherlv_4, grammarAccess.getDiaAccess().getRightCurlyBracketKeyword_4());
                

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleDia"


    // $ANTLR start "entryRuleAsignacion"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:726:1: entryRuleAsignacion returns [EObject current=null] : iv_ruleAsignacion= ruleAsignacion EOF ;
    public final EObject entryRuleAsignacion() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleAsignacion = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:727:2: (iv_ruleAsignacion= ruleAsignacion EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:728:2: iv_ruleAsignacion= ruleAsignacion EOF
            {
             newCompositeNode(grammarAccess.getAsignacionRule()); 
            pushFollow(FOLLOW_ruleAsignacion_in_entryRuleAsignacion1476);
            iv_ruleAsignacion=ruleAsignacion();

            state._fsp--;

             current =iv_ruleAsignacion; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleAsignacion1486); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleAsignacion"


    // $ANTLR start "ruleAsignacion"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:735:1: ruleAsignacion returns [EObject current=null] : (otherlv_0= 'Asignar' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'a' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'de' ( (lv_horaInicio_5_0= RULE_INT ) ) otherlv_6= 'a' ( (lv_horaFin_7_0= RULE_INT ) ) ) ;
    public final EObject ruleAsignacion() throws RecognitionException {
        EObject current = null;

        Token otherlv_0=null;
        Token otherlv_1=null;
        Token otherlv_2=null;
        Token otherlv_3=null;
        Token otherlv_4=null;
        Token lv_horaInicio_5_0=null;
        Token otherlv_6=null;
        Token lv_horaFin_7_0=null;

         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:738:28: ( (otherlv_0= 'Asignar' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'a' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'de' ( (lv_horaInicio_5_0= RULE_INT ) ) otherlv_6= 'a' ( (lv_horaFin_7_0= RULE_INT ) ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:739:1: (otherlv_0= 'Asignar' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'a' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'de' ( (lv_horaInicio_5_0= RULE_INT ) ) otherlv_6= 'a' ( (lv_horaFin_7_0= RULE_INT ) ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:739:1: (otherlv_0= 'Asignar' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'a' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'de' ( (lv_horaInicio_5_0= RULE_INT ) ) otherlv_6= 'a' ( (lv_horaFin_7_0= RULE_INT ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:739:3: otherlv_0= 'Asignar' ( (otherlv_1= RULE_ID ) ) otherlv_2= 'a' ( (otherlv_3= RULE_ID ) ) otherlv_4= 'de' ( (lv_horaInicio_5_0= RULE_INT ) ) otherlv_6= 'a' ( (lv_horaFin_7_0= RULE_INT ) )
            {
            otherlv_0=(Token)match(input,29,FOLLOW_29_in_ruleAsignacion1523); 

                	newLeafNode(otherlv_0, grammarAccess.getAsignacionAccess().getAsignarKeyword_0());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:743:1: ( (otherlv_1= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:744:1: (otherlv_1= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:744:1: (otherlv_1= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:745:3: otherlv_1= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getAsignacionRule());
            	        }
                    
            otherlv_1=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAsignacion1543); 

            		newLeafNode(otherlv_1, grammarAccess.getAsignacionAccess().getMateriaMateriaCrossReference_1_0()); 
            	

            }


            }

            otherlv_2=(Token)match(input,30,FOLLOW_30_in_ruleAsignacion1555); 

                	newLeafNode(otherlv_2, grammarAccess.getAsignacionAccess().getAKeyword_2());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:760:1: ( (otherlv_3= RULE_ID ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:761:1: (otherlv_3= RULE_ID )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:761:1: (otherlv_3= RULE_ID )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:762:3: otherlv_3= RULE_ID
            {

            			if (current==null) {
            	            current = createModelElement(grammarAccess.getAsignacionRule());
            	        }
                    
            otherlv_3=(Token)match(input,RULE_ID,FOLLOW_RULE_ID_in_ruleAsignacion1575); 

            		newLeafNode(otherlv_3, grammarAccess.getAsignacionAccess().getAulaAulaCrossReference_3_0()); 
            	

            }


            }

            otherlv_4=(Token)match(input,31,FOLLOW_31_in_ruleAsignacion1587); 

                	newLeafNode(otherlv_4, grammarAccess.getAsignacionAccess().getDeKeyword_4());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:777:1: ( (lv_horaInicio_5_0= RULE_INT ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:778:1: (lv_horaInicio_5_0= RULE_INT )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:778:1: (lv_horaInicio_5_0= RULE_INT )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:779:3: lv_horaInicio_5_0= RULE_INT
            {
            lv_horaInicio_5_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleAsignacion1604); 

            			newLeafNode(lv_horaInicio_5_0, grammarAccess.getAsignacionAccess().getHoraInicioINTTerminalRuleCall_5_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAsignacionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaInicio",
                    		lv_horaInicio_5_0, 
                    		"INT");
            	    

            }


            }

            otherlv_6=(Token)match(input,30,FOLLOW_30_in_ruleAsignacion1621); 

                	newLeafNode(otherlv_6, grammarAccess.getAsignacionAccess().getAKeyword_6());
                
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:799:1: ( (lv_horaFin_7_0= RULE_INT ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:800:1: (lv_horaFin_7_0= RULE_INT )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:800:1: (lv_horaFin_7_0= RULE_INT )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:801:3: lv_horaFin_7_0= RULE_INT
            {
            lv_horaFin_7_0=(Token)match(input,RULE_INT,FOLLOW_RULE_INT_in_ruleAsignacion1638); 

            			newLeafNode(lv_horaFin_7_0, grammarAccess.getAsignacionAccess().getHoraFinINTTerminalRuleCall_7_0()); 
            		

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getAsignacionRule());
            	        }
                   		setWithLastConsumed(
                   			current, 
                   			"horaFin",
                    		lv_horaFin_7_0, 
                    		"INT");
            	    

            }


            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleAsignacion"


    // $ANTLR start "entryRuleExclusiva"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:825:1: entryRuleExclusiva returns [EObject current=null] : iv_ruleExclusiva= ruleExclusiva EOF ;
    public final EObject entryRuleExclusiva() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleExclusiva = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:826:2: (iv_ruleExclusiva= ruleExclusiva EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:827:2: iv_ruleExclusiva= ruleExclusiva EOF
            {
             newCompositeNode(grammarAccess.getExclusivaRule()); 
            pushFollow(FOLLOW_ruleExclusiva_in_entryRuleExclusiva1679);
            iv_ruleExclusiva=ruleExclusiva();

            state._fsp--;

             current =iv_ruleExclusiva; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleExclusiva1689); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleExclusiva"


    // $ANTLR start "ruleExclusiva"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:834:1: ruleExclusiva returns [EObject current=null] : ( (lv_nombre_0_0= 'Exclusiva' ) ) ;
    public final EObject ruleExclusiva() throws RecognitionException {
        EObject current = null;

        Token lv_nombre_0_0=null;

         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:837:28: ( ( (lv_nombre_0_0= 'Exclusiva' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:838:1: ( (lv_nombre_0_0= 'Exclusiva' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:838:1: ( (lv_nombre_0_0= 'Exclusiva' ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:839:1: (lv_nombre_0_0= 'Exclusiva' )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:839:1: (lv_nombre_0_0= 'Exclusiva' )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:840:3: lv_nombre_0_0= 'Exclusiva'
            {
            lv_nombre_0_0=(Token)match(input,32,FOLLOW_32_in_ruleExclusiva1731); 

                    newLeafNode(lv_nombre_0_0, grammarAccess.getExclusivaAccess().getNombreExclusivaKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getExclusivaRule());
            	        }
                   		setWithLastConsumed(current, "nombre", lv_nombre_0_0, "Exclusiva");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleExclusiva"


    // $ANTLR start "entryRuleSemi"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:861:1: entryRuleSemi returns [EObject current=null] : iv_ruleSemi= ruleSemi EOF ;
    public final EObject entryRuleSemi() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSemi = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:862:2: (iv_ruleSemi= ruleSemi EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:863:2: iv_ruleSemi= ruleSemi EOF
            {
             newCompositeNode(grammarAccess.getSemiRule()); 
            pushFollow(FOLLOW_ruleSemi_in_entryRuleSemi1779);
            iv_ruleSemi=ruleSemi();

            state._fsp--;

             current =iv_ruleSemi; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSemi1789); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSemi"


    // $ANTLR start "ruleSemi"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:870:1: ruleSemi returns [EObject current=null] : ( (lv_nombre_0_0= 'Semi' ) ) ;
    public final EObject ruleSemi() throws RecognitionException {
        EObject current = null;

        Token lv_nombre_0_0=null;

         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:873:28: ( ( (lv_nombre_0_0= 'Semi' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:874:1: ( (lv_nombre_0_0= 'Semi' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:874:1: ( (lv_nombre_0_0= 'Semi' ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:875:1: (lv_nombre_0_0= 'Semi' )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:875:1: (lv_nombre_0_0= 'Semi' )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:876:3: lv_nombre_0_0= 'Semi'
            {
            lv_nombre_0_0=(Token)match(input,33,FOLLOW_33_in_ruleSemi1831); 

                    newLeafNode(lv_nombre_0_0, grammarAccess.getSemiAccess().getNombreSemiKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSemiRule());
            	        }
                   		setWithLastConsumed(current, "nombre", lv_nombre_0_0, "Semi");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSemi"


    // $ANTLR start "entryRuleSimple"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:897:1: entryRuleSimple returns [EObject current=null] : iv_ruleSimple= ruleSimple EOF ;
    public final EObject entryRuleSimple() throws RecognitionException {
        EObject current = null;

        EObject iv_ruleSimple = null;


        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:898:2: (iv_ruleSimple= ruleSimple EOF )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:899:2: iv_ruleSimple= ruleSimple EOF
            {
             newCompositeNode(grammarAccess.getSimpleRule()); 
            pushFollow(FOLLOW_ruleSimple_in_entryRuleSimple1879);
            iv_ruleSimple=ruleSimple();

            state._fsp--;

             current =iv_ruleSimple; 
            match(input,EOF,FOLLOW_EOF_in_entryRuleSimple1889); 

            }

        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "entryRuleSimple"


    // $ANTLR start "ruleSimple"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:906:1: ruleSimple returns [EObject current=null] : ( (lv_nombre_0_0= 'Simple' ) ) ;
    public final EObject ruleSimple() throws RecognitionException {
        EObject current = null;

        Token lv_nombre_0_0=null;

         enterRule(); 
            
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:909:28: ( ( (lv_nombre_0_0= 'Simple' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:910:1: ( (lv_nombre_0_0= 'Simple' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:910:1: ( (lv_nombre_0_0= 'Simple' ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:911:1: (lv_nombre_0_0= 'Simple' )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:911:1: (lv_nombre_0_0= 'Simple' )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:912:3: lv_nombre_0_0= 'Simple'
            {
            lv_nombre_0_0=(Token)match(input,34,FOLLOW_34_in_ruleSimple1931); 

                    newLeafNode(lv_nombre_0_0, grammarAccess.getSimpleAccess().getNombreSimpleKeyword_0());
                

            	        if (current==null) {
            	            current = createModelElement(grammarAccess.getSimpleRule());
            	        }
                   		setWithLastConsumed(current, "nombre", lv_nombre_0_0, "Simple");
            	    

            }


            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleSimple"


    // $ANTLR start "ruleTipoRecurso"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:933:1: ruleTipoRecurso returns [Enumerator current=null] : ( (enumLiteral_0= 'Proyector' ) | (enumLiteral_1= 'PcDocente' ) | (enumLiteral_2= 'PcAlumnos' ) | (enumLiteral_3= 'Internet' ) ) ;
    public final Enumerator ruleTipoRecurso() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;

         enterRule(); 
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:935:28: ( ( (enumLiteral_0= 'Proyector' ) | (enumLiteral_1= 'PcDocente' ) | (enumLiteral_2= 'PcAlumnos' ) | (enumLiteral_3= 'Internet' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:936:1: ( (enumLiteral_0= 'Proyector' ) | (enumLiteral_1= 'PcDocente' ) | (enumLiteral_2= 'PcAlumnos' ) | (enumLiteral_3= 'Internet' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:936:1: ( (enumLiteral_0= 'Proyector' ) | (enumLiteral_1= 'PcDocente' ) | (enumLiteral_2= 'PcAlumnos' ) | (enumLiteral_3= 'Internet' ) )
            int alt14=4;
            switch ( input.LA(1) ) {
            case 35:
                {
                alt14=1;
                }
                break;
            case 36:
                {
                alt14=2;
                }
                break;
            case 37:
                {
                alt14=3;
                }
                break;
            case 38:
                {
                alt14=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 14, 0, input);

                throw nvae;
            }

            switch (alt14) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:936:2: (enumLiteral_0= 'Proyector' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:936:2: (enumLiteral_0= 'Proyector' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:936:4: enumLiteral_0= 'Proyector'
                    {
                    enumLiteral_0=(Token)match(input,35,FOLLOW_35_in_ruleTipoRecurso1993); 

                            current = grammarAccess.getTipoRecursoAccess().getProyectorEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getTipoRecursoAccess().getProyectorEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:942:6: (enumLiteral_1= 'PcDocente' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:942:6: (enumLiteral_1= 'PcDocente' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:942:8: enumLiteral_1= 'PcDocente'
                    {
                    enumLiteral_1=(Token)match(input,36,FOLLOW_36_in_ruleTipoRecurso2010); 

                            current = grammarAccess.getTipoRecursoAccess().getPcDocenteEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getTipoRecursoAccess().getPcDocenteEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:948:6: (enumLiteral_2= 'PcAlumnos' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:948:6: (enumLiteral_2= 'PcAlumnos' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:948:8: enumLiteral_2= 'PcAlumnos'
                    {
                    enumLiteral_2=(Token)match(input,37,FOLLOW_37_in_ruleTipoRecurso2027); 

                            current = grammarAccess.getTipoRecursoAccess().getPcAlumnosEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getTipoRecursoAccess().getPcAlumnosEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:954:6: (enumLiteral_3= 'Internet' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:954:6: (enumLiteral_3= 'Internet' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:954:8: enumLiteral_3= 'Internet'
                    {
                    enumLiteral_3=(Token)match(input,38,FOLLOW_38_in_ruleTipoRecurso2044); 

                            current = grammarAccess.getTipoRecursoAccess().getInternetEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getTipoRecursoAccess().getInternetEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleTipoRecurso"


    // $ANTLR start "ruleNombreDia"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:964:1: ruleNombreDia returns [Enumerator current=null] : ( (enumLiteral_0= 'Domingo' ) | (enumLiteral_1= 'Lunes' ) | (enumLiteral_2= 'Martes' ) | (enumLiteral_3= 'Miercoles' ) | (enumLiteral_4= 'Jueves' ) | (enumLiteral_5= 'Viernes' ) | (enumLiteral_6= 'Sabado' ) ) ;
    public final Enumerator ruleNombreDia() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;
        Token enumLiteral_2=null;
        Token enumLiteral_3=null;
        Token enumLiteral_4=null;
        Token enumLiteral_5=null;
        Token enumLiteral_6=null;

         enterRule(); 
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:966:28: ( ( (enumLiteral_0= 'Domingo' ) | (enumLiteral_1= 'Lunes' ) | (enumLiteral_2= 'Martes' ) | (enumLiteral_3= 'Miercoles' ) | (enumLiteral_4= 'Jueves' ) | (enumLiteral_5= 'Viernes' ) | (enumLiteral_6= 'Sabado' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:967:1: ( (enumLiteral_0= 'Domingo' ) | (enumLiteral_1= 'Lunes' ) | (enumLiteral_2= 'Martes' ) | (enumLiteral_3= 'Miercoles' ) | (enumLiteral_4= 'Jueves' ) | (enumLiteral_5= 'Viernes' ) | (enumLiteral_6= 'Sabado' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:967:1: ( (enumLiteral_0= 'Domingo' ) | (enumLiteral_1= 'Lunes' ) | (enumLiteral_2= 'Martes' ) | (enumLiteral_3= 'Miercoles' ) | (enumLiteral_4= 'Jueves' ) | (enumLiteral_5= 'Viernes' ) | (enumLiteral_6= 'Sabado' ) )
            int alt15=7;
            switch ( input.LA(1) ) {
            case 39:
                {
                alt15=1;
                }
                break;
            case 40:
                {
                alt15=2;
                }
                break;
            case 41:
                {
                alt15=3;
                }
                break;
            case 42:
                {
                alt15=4;
                }
                break;
            case 43:
                {
                alt15=5;
                }
                break;
            case 44:
                {
                alt15=6;
                }
                break;
            case 45:
                {
                alt15=7;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 15, 0, input);

                throw nvae;
            }

            switch (alt15) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:967:2: (enumLiteral_0= 'Domingo' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:967:2: (enumLiteral_0= 'Domingo' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:967:4: enumLiteral_0= 'Domingo'
                    {
                    enumLiteral_0=(Token)match(input,39,FOLLOW_39_in_ruleNombreDia2089); 

                            current = grammarAccess.getNombreDiaAccess().getDomingoEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getNombreDiaAccess().getDomingoEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:973:6: (enumLiteral_1= 'Lunes' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:973:6: (enumLiteral_1= 'Lunes' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:973:8: enumLiteral_1= 'Lunes'
                    {
                    enumLiteral_1=(Token)match(input,40,FOLLOW_40_in_ruleNombreDia2106); 

                            current = grammarAccess.getNombreDiaAccess().getLunesEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getNombreDiaAccess().getLunesEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;
                case 3 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:979:6: (enumLiteral_2= 'Martes' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:979:6: (enumLiteral_2= 'Martes' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:979:8: enumLiteral_2= 'Martes'
                    {
                    enumLiteral_2=(Token)match(input,41,FOLLOW_41_in_ruleNombreDia2123); 

                            current = grammarAccess.getNombreDiaAccess().getMartesEnumLiteralDeclaration_2().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_2, grammarAccess.getNombreDiaAccess().getMartesEnumLiteralDeclaration_2()); 
                        

                    }


                    }
                    break;
                case 4 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:985:6: (enumLiteral_3= 'Miercoles' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:985:6: (enumLiteral_3= 'Miercoles' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:985:8: enumLiteral_3= 'Miercoles'
                    {
                    enumLiteral_3=(Token)match(input,42,FOLLOW_42_in_ruleNombreDia2140); 

                            current = grammarAccess.getNombreDiaAccess().getMiercolesEnumLiteralDeclaration_3().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_3, grammarAccess.getNombreDiaAccess().getMiercolesEnumLiteralDeclaration_3()); 
                        

                    }


                    }
                    break;
                case 5 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:991:6: (enumLiteral_4= 'Jueves' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:991:6: (enumLiteral_4= 'Jueves' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:991:8: enumLiteral_4= 'Jueves'
                    {
                    enumLiteral_4=(Token)match(input,43,FOLLOW_43_in_ruleNombreDia2157); 

                            current = grammarAccess.getNombreDiaAccess().getJuevesEnumLiteralDeclaration_4().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_4, grammarAccess.getNombreDiaAccess().getJuevesEnumLiteralDeclaration_4()); 
                        

                    }


                    }
                    break;
                case 6 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:997:6: (enumLiteral_5= 'Viernes' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:997:6: (enumLiteral_5= 'Viernes' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:997:8: enumLiteral_5= 'Viernes'
                    {
                    enumLiteral_5=(Token)match(input,44,FOLLOW_44_in_ruleNombreDia2174); 

                            current = grammarAccess.getNombreDiaAccess().getViernesEnumLiteralDeclaration_5().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_5, grammarAccess.getNombreDiaAccess().getViernesEnumLiteralDeclaration_5()); 
                        

                    }


                    }
                    break;
                case 7 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1003:6: (enumLiteral_6= 'Sabado' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1003:6: (enumLiteral_6= 'Sabado' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1003:8: enumLiteral_6= 'Sabado'
                    {
                    enumLiteral_6=(Token)match(input,45,FOLLOW_45_in_ruleNombreDia2191); 

                            current = grammarAccess.getNombreDiaAccess().getSabadoEnumLiteralDeclaration_6().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_6, grammarAccess.getNombreDiaAccess().getSabadoEnumLiteralDeclaration_6()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleNombreDia"


    // $ANTLR start "ruleCuatrimestre"
    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1013:1: ruleCuatrimestre returns [Enumerator current=null] : ( (enumLiteral_0= 'Uno' ) | (enumLiteral_1= 'Dos' ) ) ;
    public final Enumerator ruleCuatrimestre() throws RecognitionException {
        Enumerator current = null;

        Token enumLiteral_0=null;
        Token enumLiteral_1=null;

         enterRule(); 
        try {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1015:28: ( ( (enumLiteral_0= 'Uno' ) | (enumLiteral_1= 'Dos' ) ) )
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1016:1: ( (enumLiteral_0= 'Uno' ) | (enumLiteral_1= 'Dos' ) )
            {
            // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1016:1: ( (enumLiteral_0= 'Uno' ) | (enumLiteral_1= 'Dos' ) )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==46) ) {
                alt16=1;
            }
            else if ( (LA16_0==47) ) {
                alt16=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1016:2: (enumLiteral_0= 'Uno' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1016:2: (enumLiteral_0= 'Uno' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1016:4: enumLiteral_0= 'Uno'
                    {
                    enumLiteral_0=(Token)match(input,46,FOLLOW_46_in_ruleCuatrimestre2236); 

                            current = grammarAccess.getCuatrimestreAccess().getUnoEnumLiteralDeclaration_0().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_0, grammarAccess.getCuatrimestreAccess().getUnoEnumLiteralDeclaration_0()); 
                        

                    }


                    }
                    break;
                case 2 :
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1022:6: (enumLiteral_1= 'Dos' )
                    {
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1022:6: (enumLiteral_1= 'Dos' )
                    // ../ar.edu.phm.tp.cuatro.planificacionDsl/src-gen/ar/edu/phm/tp/cuatro/planificacionDsl/parser/antlr/internal/InternalPlanificacion.g:1022:8: enumLiteral_1= 'Dos'
                    {
                    enumLiteral_1=(Token)match(input,47,FOLLOW_47_in_ruleCuatrimestre2253); 

                            current = grammarAccess.getCuatrimestreAccess().getDosEnumLiteralDeclaration_1().getEnumLiteral().getInstance();
                            newLeafNode(enumLiteral_1, grammarAccess.getCuatrimestreAccess().getDosEnumLiteralDeclaration_1()); 
                        

                    }


                    }
                    break;

            }


            }

             leaveRule(); 
        }
         
            catch (RecognitionException re) { 
                recover(input,re); 
                appendSkippedTokens();
            } 
        finally {
        }
        return current;
    }
    // $ANTLR end "ruleCuatrimestre"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleModel_in_entryRuleModel75 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleModel85 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleEntidad_in_ruleModel130 = new BitSet(new long[]{0x0000000002280802L});
    public static final BitSet FOLLOW_ruleEntidad_in_entryRuleEntidad166 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleEntidad176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDocente_in_ruleEntidad223 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMateria_in_ruleEntidad250 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAula_in_ruleEntidad277 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlan_in_ruleEntidad304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rulePlan_in_entryRulePlan339 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRulePlan349 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rulePlan386 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_INT_in_rulePlan403 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_12_in_rulePlan420 = new BitSet(new long[]{0x0000C00000000000L});
    public static final BitSet FOLLOW_ruleCuatrimestre_in_rulePlan441 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_rulePlan453 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_14_in_rulePlan465 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_rulePlan477 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePlan497 = new BitSet(new long[]{0x0000000000030000L});
    public static final BitSet FOLLOW_16_in_rulePlan510 = new BitSet(new long[]{0x0000000000020020L});
    public static final BitSet FOLLOW_RULE_ID_in_rulePlan530 = new BitSet(new long[]{0x0000000000020020L});
    public static final BitSet FOLLOW_17_in_rulePlan545 = new BitSet(new long[]{0x0000000010040000L});
    public static final BitSet FOLLOW_ruleDia_in_rulePlan566 = new BitSet(new long[]{0x0000000010040000L});
    public static final BitSet FOLLOW_18_in_rulePlan579 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAula_in_entryRuleAula615 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAula625 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_ruleAula662 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAula679 = new BitSet(new long[]{0x0000000000100002L});
    public static final BitSet FOLLOW_20_in_ruleAula697 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_15_in_ruleAula709 = new BitSet(new long[]{0x0000007800000000L});
    public static final BitSet FOLLOW_ruleTipoRecurso_in_ruleAula730 = new BitSet(new long[]{0x0000000000030000L});
    public static final BitSet FOLLOW_16_in_ruleAula743 = new BitSet(new long[]{0x0000007800000000L});
    public static final BitSet FOLLOW_ruleTipoRecurso_in_ruleAula764 = new BitSet(new long[]{0x0000000000030000L});
    public static final BitSet FOLLOW_17_in_ruleAula778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleMateria_in_entryRuleMateria816 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleMateria826 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_21_in_ruleMateria863 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleMateria880 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_22_in_ruleMateria897 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMateria914 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_23_in_ruleMateria931 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleMateria948 = new BitSet(new long[]{0x0000000001000002L});
    public static final BitSet FOLLOW_24_in_ruleMateria966 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleMateria978 = new BitSet(new long[]{0x0000007800000000L});
    public static final BitSet FOLLOW_ruleTipoRecurso_in_ruleMateria999 = new BitSet(new long[]{0x0000000000050000L});
    public static final BitSet FOLLOW_16_in_ruleMateria1012 = new BitSet(new long[]{0x0000007800000000L});
    public static final BitSet FOLLOW_ruleTipoRecurso_in_ruleMateria1033 = new BitSet(new long[]{0x0000000000050000L});
    public static final BitSet FOLLOW_18_in_ruleMateria1047 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDocente_in_entryRuleDocente1085 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDocente1095 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_25_in_ruleDocente1132 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleDocente1149 = new BitSet(new long[]{0x0000000004000000L});
    public static final BitSet FOLLOW_26_in_ruleDocente1166 = new BitSet(new long[]{0x0000000700000000L});
    public static final BitSet FOLLOW_ruleSimple_in_ruleDocente1189 = new BitSet(new long[]{0x0000000008000002L});
    public static final BitSet FOLLOW_ruleSemi_in_ruleDocente1208 = new BitSet(new long[]{0x0000000008000002L});
    public static final BitSet FOLLOW_ruleExclusiva_in_ruleDocente1227 = new BitSet(new long[]{0x0000000008000002L});
    public static final BitSet FOLLOW_27_in_ruleDocente1243 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleDocente1255 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleDocente1275 = new BitSet(new long[]{0x0000000000040020L});
    public static final BitSet FOLLOW_18_in_ruleDocente1288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleDia_in_entryRuleDia1326 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleDia1336 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_28_in_ruleDia1373 = new BitSet(new long[]{0x00003F8000000000L});
    public static final BitSet FOLLOW_ruleNombreDia_in_ruleDia1394 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_13_in_ruleDia1406 = new BitSet(new long[]{0x0000000020040000L});
    public static final BitSet FOLLOW_ruleAsignacion_in_ruleDia1427 = new BitSet(new long[]{0x0000000020040000L});
    public static final BitSet FOLLOW_18_in_ruleDia1440 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleAsignacion_in_entryRuleAsignacion1476 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleAsignacion1486 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_29_in_ruleAsignacion1523 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAsignacion1543 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_30_in_ruleAsignacion1555 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_RULE_ID_in_ruleAsignacion1575 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_31_in_ruleAsignacion1587 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleAsignacion1604 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_30_in_ruleAsignacion1621 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_RULE_INT_in_ruleAsignacion1638 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleExclusiva_in_entryRuleExclusiva1679 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleExclusiva1689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_32_in_ruleExclusiva1731 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSemi_in_entryRuleSemi1779 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSemi1789 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_33_in_ruleSemi1831 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleSimple_in_entryRuleSimple1879 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleSimple1889 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_ruleSimple1931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_ruleTipoRecurso1993 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_ruleTipoRecurso2010 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_ruleTipoRecurso2027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_ruleTipoRecurso2044 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_ruleNombreDia2089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_ruleNombreDia2106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_ruleNombreDia2123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_ruleNombreDia2140 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_43_in_ruleNombreDia2157 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_ruleNombreDia2174 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_ruleNombreDia2191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_ruleCuatrimestre2236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_ruleCuatrimestre2253 = new BitSet(new long[]{0x0000000000000002L});

}